module display 
	#(
	parameter [4:0] SIZE_H = 9, SIZE_V = 8
	)
	(
		input clk, reset,		
		output hsync,
		output vsync,
		output [2:0] rgb
	);
	
	wire video_on;
	wire [SIZE_H:0] pixel_x;
	wire [SIZE_V:0] pixel_y;

//-----------------------------------
// Elementos graficos
//-----------------------------------
wire gramado;
wire faixa_central;
wire zebra_base_red;
wire zebra_base_white;
wire mostra_carro;
wire carro;
wire roda;

//-----------------------------------
// Instanciamento de modulos
//-----------------------------------
	modulo_vga sincronismo_vga (.clock(clk), .reset(reset), .hsync(hsync), .vsync(vsync), .area_visivel(video_on), .coluna(pixel_x), .linha(pixel_y));
	//display_rgb_test teste_rgb (.coluna(pixel_x), .linha(pixel_y), .display(video_on), .rgb(rgb));
	graficos_fixos_pista pista_fixo (pixel_x, pixel_y, gramado);
	graficos_dinamicos_pista pista_dinamic (clk, reset, pixel_x, pixel_y, faixa_central, zebra_base_red, zebra_base_white);
	controle_sprites exibe_carro (clk, pixel_x, pixel_y, mostra_carro,carro,roda);
	// Saida
	multiplixador_rgb mux_rgb (video_on, gramado, faixa_central, zebra_base_red, zebra_base_white, mostra_carro, carro, roda, rgb);

endmodule
